package com.freight.user.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.freight.user.dto.CompanyDto;
import com.freight.user.vo.AppointCompanyInfoVo;
import com.freight.user.vo.CompanyDetailInfoVo;
import com.freight.user.vo.CompanyInfoVo;
import com.freight.user.vo.UserVo;

import java.util.HashMap;
import java.util.List;

/**
 * 订单预约接口
 *
 * @author huyingtai
 */
public interface ICompanyVoService extends IService<UserVo> {
    /**
     * 通过用户id获取
     *
     * @param userId
     * @return
     */
    CompanyInfoVo getCompanyInfoVoByUserId(Long userId);

    /**
     * 通过用户id获取
     *
     * @param userId
     * @return
     */
    List<CompanyInfoVo> getCompanyInfoVoByUserIds(Long[] userId);


    /**
     * 通过用户id获取
     *
     * @param userId
     * @return
     */
    List<CompanyInfoVo> getRegistCompanyInfoVo(Long[] userId);


    /**
     * 通过用户id获取
     *
     * @param userId
     * @return
     */
    AppointCompanyInfoVo getAppointCompanyInfoVoByUserId(Long userId);

    /**
     * 通过用户id获取
     *
     * @param userIds
     * @return
     */
    List<AppointCompanyInfoVo> getAppointCompanyInfoVoByUserIds(Long[] userIds);
    /**
     * 通过用户id获取
     *
     * @param userIds
     * @return
     */
    HashMap<Long,AppointCompanyInfoVo> getAppointCompanyInfoMapVoByUserIds(Long[] userIds);

    /**
     *
     *
     * @param page
     * @param companyDto
     * @return
     */
    Page<CompanyDetailInfoVo> getCompanyInfoVo(Page page, CompanyDto companyDto);

    /**
     *
     *
     * @param companyDto
     * @return
     */
    List<CompanyDetailInfoVo> getCompanyInfoVo(CompanyDto companyDto);



    /**
     *
     *
     * @param companyDto
     * @return
     */
    List<CompanyInfoVo> getCompanyBaseInfoVo(CompanyDto companyDto);
}